package br.com.projeto.teste;

import java.util.ArrayList;
import java.util.List;

import br.com.projeto.sakila.bean.TempoRelatorio;


public class Main {
	
	static ChamadaHibernate chamadaHibernate;
	static ChamadaJdbc chamadaJdbc;
	
	public static void main(String[] args) {
		List<TempoRelatorio> listaTemposJdbc = new ArrayList<>(); 
		List<TempoRelatorio> listaTemposHibernate = new ArrayList<>(); 
		int quantChamadas = 100;
		TempoRelatorio tempoRelatorioMedioJdbc = new TempoRelatorio();
		TempoRelatorio tempoRelatorioMedioHibernate = new TempoRelatorio();
		
		//acumula dados
		for (int i = 0; i < quantChamadas; i++) {
			chamadaHibernate = null;
			chamadaJdbc = null;
			chamadaHibernate = new ChamadaHibernate();
			chamadaJdbc = new ChamadaJdbc();
			
			listaTemposJdbc.add(chamadaJdbc.iniciarConsulta());			
			listaTemposHibernate.add(chamadaHibernate.iniciarConsulta());
		}
		
		//faz a media dos tempos
		//HIBERNATE
		for (TempoRelatorio tempoRelatorio : listaTemposHibernate) {			
			tempoRelatorioMedioHibernate.setActor(tempoRelatorioMedioHibernate.getActor() + tempoRelatorio.getActor());
			tempoRelatorioMedioHibernate.setAddress(tempoRelatorioMedioHibernate.getAddress() + tempoRelatorio.getAddress());
			tempoRelatorioMedioHibernate.setCategory(tempoRelatorioMedioHibernate.getCategory() + tempoRelatorio.getCategory());
			tempoRelatorioMedioHibernate.setCity(tempoRelatorioMedioHibernate.getCity() + tempoRelatorio.getCity());
			tempoRelatorioMedioHibernate.setSessinFactory(tempoRelatorioMedioHibernate.getSessinFactory() + tempoRelatorio.getSessinFactory());
			tempoRelatorioMedioHibernate.setCountry(tempoRelatorioMedioHibernate.getCountry() + tempoRelatorio.getCountry());
			tempoRelatorioMedioHibernate.setCustomer(tempoRelatorioMedioHibernate.getCustomer() + tempoRelatorio.getCustomer());
			tempoRelatorioMedioHibernate.setFilm(tempoRelatorioMedioHibernate.getFilm() + tempoRelatorio.getFilm());
			tempoRelatorioMedioHibernate.setFilmText(tempoRelatorioMedioHibernate.getFilmText() + tempoRelatorio.getFilmText());
			tempoRelatorioMedioHibernate.setInventory(tempoRelatorioMedioHibernate.getInventory() + tempoRelatorio.getInventory());
			tempoRelatorioMedioHibernate.setLanguage(tempoRelatorioMedioHibernate.getLanguage() + tempoRelatorio.getLanguage());
			tempoRelatorioMedioHibernate.setPayment(tempoRelatorioMedioHibernate.getPayment() + tempoRelatorio.getPayment());
			tempoRelatorioMedioHibernate.setRental(tempoRelatorioMedioHibernate.getRental() + tempoRelatorio.getRental());
			tempoRelatorioMedioHibernate.setStaff(tempoRelatorioMedioHibernate.getStaff() + tempoRelatorio.getStaff());
			tempoRelatorioMedioHibernate.setStore(tempoRelatorioMedioHibernate.getStore() + tempoRelatorio.getStore());
			
		}
		
		tempoRelatorioMedioHibernate.setActor(tempoRelatorioMedioHibernate.getActor() / quantChamadas);
		tempoRelatorioMedioHibernate.setAddress(tempoRelatorioMedioHibernate.getAddress() / quantChamadas);
		tempoRelatorioMedioHibernate.setCategory(tempoRelatorioMedioHibernate.getCategory() / quantChamadas);
		tempoRelatorioMedioHibernate.setCity(tempoRelatorioMedioHibernate.getCity() / quantChamadas);
		tempoRelatorioMedioHibernate.setSessinFactory(tempoRelatorioMedioHibernate.getSessinFactory() / quantChamadas);
		tempoRelatorioMedioHibernate.setCountry(tempoRelatorioMedioHibernate.getCountry() / quantChamadas);
		tempoRelatorioMedioHibernate.setCustomer(tempoRelatorioMedioHibernate.getCustomer() / quantChamadas);
		tempoRelatorioMedioHibernate.setFilm(tempoRelatorioMedioHibernate.getFilm() / quantChamadas);
		tempoRelatorioMedioHibernate.setFilmText(tempoRelatorioMedioHibernate.getFilmText() / quantChamadas);
		tempoRelatorioMedioHibernate.setInventory(tempoRelatorioMedioHibernate.getInventory() / quantChamadas);
		tempoRelatorioMedioHibernate.setLanguage(tempoRelatorioMedioHibernate.getLanguage() / quantChamadas);
		tempoRelatorioMedioHibernate.setPayment(tempoRelatorioMedioHibernate.getPayment() / quantChamadas);
		tempoRelatorioMedioHibernate.setRental(tempoRelatorioMedioHibernate.getRental() / quantChamadas);
		tempoRelatorioMedioHibernate.setStaff(tempoRelatorioMedioHibernate.getStaff() / quantChamadas);
		tempoRelatorioMedioHibernate.setStore(tempoRelatorioMedioHibernate.getStore() / quantChamadas);
		
		//JDBC
		//faz a media dos tempos
		for (TempoRelatorio tempoRelatorio : listaTemposJdbc) {			
			tempoRelatorioMedioJdbc.setActor(tempoRelatorioMedioJdbc.getActor() + tempoRelatorio.getActor());
			tempoRelatorioMedioJdbc.setAddress(tempoRelatorioMedioJdbc.getAddress() + tempoRelatorio.getAddress());
			tempoRelatorioMedioJdbc.setCategory(tempoRelatorioMedioJdbc.getCategory() + tempoRelatorio.getCategory());
			tempoRelatorioMedioJdbc.setCity(tempoRelatorioMedioJdbc.getCity() + tempoRelatorio.getCity());
			tempoRelatorioMedioJdbc.setConnection(tempoRelatorioMedioJdbc.getConnection() + tempoRelatorio.getConnection());
			tempoRelatorioMedioJdbc.setCountry(tempoRelatorioMedioJdbc.getCountry() + tempoRelatorio.getCountry());
			tempoRelatorioMedioJdbc.setCustomer(tempoRelatorioMedioJdbc.getCustomer() + tempoRelatorio.getCustomer());
			tempoRelatorioMedioJdbc.setFilm(tempoRelatorioMedioJdbc.getFilm() + tempoRelatorio.getFilm());
			tempoRelatorioMedioJdbc.setFilmText(tempoRelatorioMedioJdbc.getFilmText() + tempoRelatorio.getFilmText());
			tempoRelatorioMedioJdbc.setInventory(tempoRelatorioMedioJdbc.getInventory() + tempoRelatorio.getInventory());
			tempoRelatorioMedioJdbc.setLanguage(tempoRelatorioMedioJdbc.getLanguage() + tempoRelatorio.getLanguage());
			tempoRelatorioMedioJdbc.setPayment(tempoRelatorioMedioJdbc.getPayment() + tempoRelatorio.getPayment());
			tempoRelatorioMedioJdbc.setRental(tempoRelatorioMedioJdbc.getRental() + tempoRelatorio.getRental());
			tempoRelatorioMedioJdbc.setStaff(tempoRelatorioMedioJdbc.getStaff() + tempoRelatorio.getStaff());
			tempoRelatorioMedioJdbc.setStore(tempoRelatorioMedioJdbc.getStore() + tempoRelatorio.getStore());
					
		}
				
		tempoRelatorioMedioJdbc.setActor(tempoRelatorioMedioJdbc.getActor() / quantChamadas);
		tempoRelatorioMedioJdbc.setAddress(tempoRelatorioMedioJdbc.getAddress() / quantChamadas);
		tempoRelatorioMedioJdbc.setCategory(tempoRelatorioMedioJdbc.getCategory() / quantChamadas);
		tempoRelatorioMedioJdbc.setCity(tempoRelatorioMedioJdbc.getCity() / quantChamadas);
		tempoRelatorioMedioJdbc.setConnection(tempoRelatorioMedioJdbc.getConnection() / quantChamadas);
		tempoRelatorioMedioJdbc.setCountry(tempoRelatorioMedioJdbc.getCountry() / quantChamadas);
		tempoRelatorioMedioJdbc.setCustomer(tempoRelatorioMedioJdbc.getCustomer() / quantChamadas);
		tempoRelatorioMedioJdbc.setFilm(tempoRelatorioMedioJdbc.getFilm() / quantChamadas);
		tempoRelatorioMedioJdbc.setFilmText(tempoRelatorioMedioJdbc.getFilmText() / quantChamadas);
		tempoRelatorioMedioJdbc.setInventory(tempoRelatorioMedioJdbc.getInventory() / quantChamadas);
		tempoRelatorioMedioJdbc.setLanguage(tempoRelatorioMedioJdbc.getLanguage() / quantChamadas);
		tempoRelatorioMedioJdbc.setPayment(tempoRelatorioMedioJdbc.getPayment() / quantChamadas);
		tempoRelatorioMedioJdbc.setRental(tempoRelatorioMedioJdbc.getRental() / quantChamadas);
		tempoRelatorioMedioJdbc.setStaff(tempoRelatorioMedioJdbc.getStaff() / quantChamadas);
		tempoRelatorioMedioJdbc.setStore(tempoRelatorioMedioJdbc.getStore() / quantChamadas);
		
		
		System.out.println("--------- MEDIA DAS CONSULTAS -------");
		
			System.out.println("Hibernate Sessin Factory : " + tempoRelatorioMedioHibernate.getSessinFactory());
			System.out.println("Hibernate Actor : " + tempoRelatorioMedioHibernate.getActor());
			System.out.println("Hibernate Address : " + tempoRelatorioMedioHibernate.getAddress());
			System.out.println("Hibernate Category : " + tempoRelatorioMedioHibernate.getCategory());
			System.out.println("Hibernate City : " + tempoRelatorioMedioHibernate.getCity());
			System.out.println("Hibernate Country : " + tempoRelatorioMedioHibernate.getCountry());
			System.out.println("Hibernate Customer : " + tempoRelatorioMedioHibernate.getCustomer());
			System.out.println("Hibernate Film : " + tempoRelatorioMedioHibernate.getFilm());
			System.out.println("Hibernate FilmText : " + tempoRelatorioMedioHibernate.getFilmText());
			System.out.println("Hibernate Inventory : " + tempoRelatorioMedioHibernate.getInventory());
			System.out.println("Hibernate Language : " + tempoRelatorioMedioHibernate.getLanguage());
			System.out.println("Hibernate Payment : " + tempoRelatorioMedioHibernate.getPayment());
			System.out.println("Hibernate Rental : " + tempoRelatorioMedioHibernate.getRental());
			System.out.println("Hibernate Staff : " + tempoRelatorioMedioHibernate.getStaff());
			System.out.println("Hibernate Store : " + tempoRelatorioMedioHibernate.getStore());

		System.out.println("---------------------------------------------------");

			System.out.println("JDBC Connection : " + tempoRelatorioMedioJdbc.getConnection());
			System.out.println("JDBC Actor : " + tempoRelatorioMedioJdbc.getActor());
			System.out.println("JDBC Address : " + tempoRelatorioMedioJdbc.getAddress());
			System.out.println("JDBC Category : " + tempoRelatorioMedioJdbc.getCategory());
			System.out.println("JDBC City : " + tempoRelatorioMedioJdbc.getCity());
			System.out.println("JDBC Country : " + tempoRelatorioMedioJdbc.getCountry());
			System.out.println("JDBC Customer : " + tempoRelatorioMedioJdbc.getCustomer());
			System.out.println("JDBC Film : " + tempoRelatorioMedioJdbc.getFilm());
			System.out.println("JDBC FilmText : " + tempoRelatorioMedioJdbc.getFilmText());
			System.out.println("JDBC Inventory : " + tempoRelatorioMedioJdbc.getInventory());
			System.out.println("JDBC Language : " + tempoRelatorioMedioJdbc.getLanguage());
			System.out.println("JDBC Payment : " + tempoRelatorioMedioJdbc.getPayment());
			System.out.println("JDBC Rental : " + tempoRelatorioMedioJdbc.getRental());
			System.out.println("JDBC Staff : " + tempoRelatorioMedioJdbc.getStaff());
			System.out.println("JDBC Store : " + tempoRelatorioMedioJdbc.getStore());

	}

}
